#region Using References

using System;

#endregion

namespace Beaker.OpenCube.Textures
{
	[Flags]
	public enum BlockTextureFlags
		: byte
	{
		/// <summary>
		/// Top face
		/// </summary>
		Top = 0x0001,
		/// <summary>
		/// Side face
		/// </summary>
		Side = 0x0002,
		/// <summary>
		/// Bottom face
		/// </summary>
		Bottom = 0x0004,

		/// <summary>
		/// All faces, left, side and bottom
		/// </summary>
		AllFaces = Top | Side | Bottom,
		
		/// <summary>
		/// Grayscale overlay that will be tinted 
		/// and, if there is a normal texture, projected on top of that normal texture.
		/// </summary>
		Overlay = 0x0008,

		/// <summary>
		/// Overlay for the top face
		/// </summary>
		TopOverlay = Top | Overlay,
		/// <summary>
		/// Overlay for the side faces
		/// </summary>
		SideOverlay = Side | Overlay,
		/// <summary>
		/// Overlay for the bottom face
		/// </summary>
		BottomOverlay = Bottom | Overlay,

		/// <summary>
		/// Overlay for all faces, left, side and bottom.
		/// </summary>
		AllFacesOverlay = AllFaces | Overlay,

		/// <summary>
		/// Maximum value of the enum
		/// </summary>
		MaxValue = AllFacesOverlay
	}
}